package org.paradise.dms.services;

import java.util.List;

import org.paradise.dms.pojo.Student;


/**
 * 
 * Description:新生入学报道的服务类（包括：帐号激活，登录，单人申请宿舍，多人申请，查看购物信息等）
 * 
 */

public interface StudentReportService {

	/**
	 * Description:单人申请宿舍，传入该学生的学号，返回用户住宿信息（包括学号，宿舍号，床位等信息），若分配不成功，返回NULL
	 * @param studentNO
	 * @return Object 
	 * 备注：返回类型由你定义，我需要最基本的三个信息：学号，宿舍号，床位。
	 */
	public Object insertSingleApply(String studentNO);
	
	/**
	 * 多人申请时页面ajax校验某个学生信息是否正确或已激活
	 * @return
	 * 正确返回yes,不正确返回错误信息
	 */
	public String validateStudent(String studentno ,String password);
	
	
	/**
	 * 多人申请时struts校验某个学生信息是否正确或已激活
	 * @return
	 * 正确返回student,不正确返回null
	 */
	public Student validateStudentExits(String studentno ,String password);
	
	
	/**
	 * Description:多人申请宿舍，传入该组学生的学号，返回用户住宿信息（包括学号，宿舍号，床位等信息），若分配不成功，返回NULL
	 * @param studentNO数组
	 * @return List<Object> 
	 * 备注：返回的List要不为空，要不长度必须跟数组长度一致。
	 */
	
	public String insertMultipleApply(String[] studentNO);
	
	/**
	 * Description:退订宿舍。
	 * @param studentNO
	 * @return 返回空串表示成功，否则返回错误信息
	 */

	public String cancelAllocate(String studentNO);
	/**
	 * 单人分配完以后查询宿舍信息
	 * @param stuno
	 * @return
	 */
	public List findDormByStudentno(String stuno);
	
	/**
	 * Description:查找所有订单信息。
	 * @param studentNO
	 * @return List<Object> 
	 * 备注：退订是否成功。
	 */
	public List<Object> findOrder(String condition);
	
	/**
	 * 新生登录验证，若成功返回学生对象，否则返回null;
	 * @param username
	 * @param password
	 * @return
	 */
	public Student login(String username,String password);
	
	/**
	 * 激活学生帐号
	 * @param username
	 * @return
	 */
	public Student activeStudent(String identitycardno,String password);
	
	/**
	 *通过学号获得学生
	 * @param studentno
	 * @return
	 */
	public Student getStudentByNO(String studentno);
	
	/**
	 * 通过sql语句查询所有可申请宿舍
	 * @param sql
	 * @return
	 */
	public List getAvailDormByPreAsignedid(String sql);
	
	/**
	 * 通过sql语句查询所有可申请宿舍的数量
	 * @param sql
	 * @return
	 */
	public int getAvailDormCountByPreAsignedid(String sql);
	/**
	 * 从新生报道退宿记录表查找退宿记录
	 * @param studentno 学号
	 * @return
	 */
	public List findDormCheckOut(String studentno);
}
